import axios from "axios";
import { showNotify } from 'vant'// 统一配置提示信息

import { getToken, clearToken } from '@/utils/token'

const instance = axios.create({
    baseURL: 'http://121.89.205.189:3000/api',// 配置基础地址
    timeout: 5000, // 配置响应超时
})

// 添加请求拦截器
instance.interceptors.request.use(function (config: any) {
    let token = getToken()
    if (token) {
        config.headers.token = token
    }
    return config
},
    function (error) { //如果请求出错
        return Promise.reject(error) //把错误信息返回
    })

//添加响应拦截器
instance.interceptors.response.use((response: any) => {
    // 响应内容中有token就自动存储到本地存储
    if (response.data?.data?.token) {
        localStorage.setItem('token', response.data.data.token)
    }
    // 响应内容中有message提示信息
    if (response.data?.message) {
        const type = response.data.code == 200 ? 'success' : 'danger';
        // vant 里面的函数组件 Notify
        showNotify({ type, message: response.data.message });
       
    }
    // 把后端数据提前出来给then
    return response.data
}, (err) => {
    console.log(err);
    return Promise.reject(err)
})


// 暴露方法
export function get(url: string, params?: Object) {
    return instance.get(url, { params })
}

export function post(url: string, data: Object) {
    return instance.post(url, data)
}
